New flicker flicker fixing approach
authorAlexander Larsson <alex@localhost.localdomain>
Thu, 22 Jan 2009 19:54:11 +0000 (20:54 +0100)
committerAlexander Larsson <alex@localhost.localdomain>
Thu, 2 Apr 2009 08:15:25 +0000 (10:15 +0200)
commitd267452bb73b9f93f483b1afa2f645b35eb4a77d
tree7ef81ef368b9cc1bef1a56fc7dfb3cd7d206abba
parent3155fdcd4122349aab6162d75c124f1abaa3137c
New flicker flicker fixing approach

There was a performance problem with the old flicker fixing
approach. For moved windows we copied the window data to the double
buffer pixmap and then back to the window with the rest of the
expose data. In some cases the copy from window data to pixmap was
very slow because the pixmap was allocated in system memory and
the window in video memory.

The new approach is to delay all window moves and then replay them
after the expose has drawn to the double buffer pixmap but before
drawing it to the window. Furthermore, we remove all exposed areas
from the destination of the delayed moves so we won't copy something
just to then immediately draw over it.

This makes scrolling in firefox fast, and it makes tests/flicker not
show any (detectable) flicker.
gdk/gdkwindow.c